home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / f2c / may_5_92.lha / f2c.VMay_5_1992 / libF77 / c_sqrt.c < prev    next >
C/C++ Source or Header  |  1992-05-07  |  348b  |  26 lines

  1. #include "f2c.h"
  2.  
  3. VOID c_sqrt(r, z)
  4. complex *r, *z;
  5. {
  6. double mag, t, sqrt(), cabs();
  7.  
  8. if( (mag = cabs(z->r, z->i)) == 0.)
  9.     r->r = r->i = 0.;
  10. else if(z->r > 0)
  11.     {
  12.     r->r = t = sqrt(0.5 * (mag + z->r) );
  13.     t = z->i / t;
  14.     r->i = 0.5 * t;
  15.     }
  16. else
  17.     {
  18.     t = sqrt(0.5 * (mag - z->r) );
  19.     if(z->i < 0)
  20.         t = -t;
  21.     r->i = t;
  22.     t = z->i / t;
  23.     r->r = 0.5 * t;
  24.     }
  25. }
  26.